# coding: utf-8

from abc import *


class WindowProtocol(metaclass=ABCMeta):
    def __init__(self):
        super(WindowProtocol, self).__init__()

    @abstractproperty
    def caption(self):
        pass

    @abstractproperty
    def width(self):
        pass

    @abstractproperty
    def height(self):
        pass

    @property
    def size(self):
        return self.width, self.height

    @abstractmethod
    def time(self, dt, fun):
        pass

    @abstractmethod
    def within_draw_process(self, func):
        pass

    @abstractmethod
    def run(self):
        pass
